<script>
export default {
  data() {
    return {
      open: false,
    };
  },
};
</script>

<template>
  <div>
    为避免样式问题，可以使用 Teleport
    指定模板渲染的位置，比如当前按钮触发的弹窗就显示在 body 的下层
  </div>
  <button @click="open = true">Open Modal</button>
  <Teleport to="body">
    <div v-if="open" class="modal">
      <p>Hello from the modal!</p>
      <button @click="open = false">Close</button>
    </div>
  </Teleport>
</template>

<style scoped>
.modal {
  position: fixed;
  z-index: 999;
  top: 20%;
  left: 50%;
  width: 300px;
  margin-left: -150px;
}
</style>
